iimport java.util.Scanner;
public class Manejo {

/*En esta clase se realiza un lista tal y como se hizo en el menu 5 y 6.
 *con la gran diferencia de que esta debe de poderse agrandar. Se puede hacer 
 *un array o un arryalist. investiguen que es lo mas facil ya que no se
 *utilizara algo como un array ya definido. El operador tiene que poder
 *crear una boleto cuando queira y para ello se debe de hacer un metodo en
 *esta clase que primero anhada un objeto a la lista y que luego lo pueda
 *cambiar y modificar a su gusto. Tambien debe haber un metodo especifico
 *que cambie el estado del vuelo de "en tierra" a "cancelado" y no lo puede hacer
 *si el vuelo tiene "estado en el aire" 
 *
 *
 *Aqui tambien debe de haber un menu que despliegue toda la informacion
 *de las clases aeropuertos y aerolineas para que se escoga los atributo que se 
 *quieren igualar
 *
 * 
 * */	
	Scanner scaner = new Scanner(System.in);
	Compra compra = new Compra();
	private static int u =0;// variable estatica que sirva para poder llevar el control de cuantas veses se ha implementado el metodo que altera la variable u, u de universal
	public void comprar(){// este metodo sirve para comprar un boleto y lo descuenta una unidad a la cantidad de voletos segun el tipo de asiento escogido del objeto luego añade el voleto a la lista de la clase Compra 
	int control =0;
	u++;// aumento de una unidad de la variable u
	String str1 =String.valueOf(u);// metodo de la clase string que combierte a string el valor de la variable 
	do{
	String boleto = str1+")";// esta concatenacion se utiliza para poder numerar la cantidad de boletos que se han creado
	for(int i =0; i<Menu3.getlista_vuelo().size(); i++){//este for imprime el codigo de cada vuelo contenido en la lista de objetos lista_vuelo
		System.out.println((i+1)+" "+Menu3.getlista_vuelo().get(i).getCodigo());
	}
	
	
	System.out.println("Ingrese el numero del  codigo del vuelo a comprar: ");
	int ingreso = scaner.nextInt();// ingreso de numeros desde el teclado
	boolean estado = Menu3.getlista_vuelo().get((ingreso -1)).getstatus().endsWith("El avion se encuentra en el aire.");// esta variable sirve para determinar si el voleto esta cancelado o si el avion esta en el aire
	boolean estado1= Menu3.getlista_vuelo().get((ingreso-1)).getstatus().endsWith("Cancelado.");// esta variable sirve para determinar si el voleto esta cancelado o si el avion esta en el aire
	int primera = Menu3.getlista_vuelo().get((ingreso -1)).getcant_aspri();//las sigientes tres variables integer sirven para adquirir el valor original de la cantidad de voletos-  
	int eje = Menu3.getlista_vuelo().get((ingreso -1)).getcant_eje();//que se encuentra en la varable cantidad de asientos de cada objeto contenido en la lista lista_vuelo
	int tur = Menu3.getlista_vuelo().get((ingreso -1)).getcant_tur();
	boolean no = true;
	if(estado != true || estado1 != true ){//si las variables estado y estado 1 no son verdaderas se ejecuta los siguientes algoritmos
			System.out.println(" 1) Primera clase disponibles: "+ Menu3.getlista_vuelo().get((ingreso -1 )).getcant_aspri() +"\n2)clase ejecutiva dispoibles: "+ Menu3.getlista_vuelo().get((ingreso -1)).getcant_eje()+ "\n3) Clase turista dispobibles: "+Menu3.getlista_vuelo().get((ingreso-1)).getcant_tur());
			System.out.println("Ingrese la clase  de asiento que desea comprar: ");
			int clase = scaner.nextInt();// acepta valores desde el teclado
			System.out.println("Ingrese el nombre del comprador del boleto: ");
			boleto =  scaner.next();
			int cantidad;
			
			if(clase == 1){// si clase es igual a 1 se descuenta un asiento de la variable que contiene la cantidad de acientos de primera clase
				cantidad = (Menu3.getlista_vuelo().get((ingreso -1 )).getcant_aspri())-1;
				if(cantidad >=0 && cantidad <= Menu3.getlista_vuelo().get((ingreso -1 )).getcant_aspri()){
					
					Menu3.getlista_vuelo().get((ingreso -1)).setcant_aspri(cantidad);
					
				}else{
					System.out.println("La cantidad solicitada de boletos no esta disponible.");
					no = false;
				}
			}
			else if(clase == 2){// si clase es igual a 1 se descuenta un asiento de la variable que contiene la cantidad de acientos de la clase ejecutiva
				cantidad = (Menu3.getlista_vuelo().get((ingreso -1 )).getcant_eje())-1;
				if( cantidad >=0 && cantidad <= Menu3.getlista_vuelo().get((ingreso -1 )).getcant_eje()){
					
					Menu3.getlista_vuelo().get((ingreso -1)).setcant_eje(cantidad);
				}else{
					System.out.println("La cantidad solicitada de boletos no esta disponible.");
					no = false;
				}
			}
			else if(clase ==3){// si clase es igual a 1 se descuenta un asiento de la variable que contiene la cantidad de acientos de la clase turista
				cantidad = (Menu3.getlista_vuelo().get((ingreso -1 )).getcant_tur())-1;
				if(cantidad >=0 && cantidad <= Menu3.getlista_vuelo().get((ingreso -1 )).getcant_tur()){
					
					Menu3.getlista_vuelo().get((ingreso -1)).setcantidad_tur(cantidad);
				}else{
					System.out.println("La cantidad solicitada de boletos no esta disponible.");
					no = false;
				}
	}
	
			
			boleto += ". Codigo: "+ Menu3.getlista_vuelo().get((ingreso-1)).getCodigo()+". Estado:  "+Menu3.getlista_vuelo().get((ingreso-1)).getstatus()+"\nHora despegue: "+Menu3.getlista_vuelo().get((ingreso-1)).gethora_despege()+". Hora aterrizaje: "+ Menu3.getlista_vuelo().get((ingreso-1)).gethora_ater()+".\nFecha de partida: "+ Menu3.getlista_vuelo().get((ingreso-1)).getfecha_despegue()+"\nFecha de aterrizaje: "+Menu3.getlista_vuelo().get((ingreso-1)).getfecha_aterrizaje()+"\nAeropuerto salida: "+Menu3.getlista_vuelo().get((ingreso-1)).getaero_sal() +"Aeropuerto entrada: "+Menu3.getlista_vuelo().get((ingreso-1)).getaero_entr();
			
			
	}else{
		if(estado1 == true){
		System.out.println("El vuelo fue cancelado.");}
		else if (estado == true){
			System.out.println("El avion se encuentra en el aire.");
		}
	}
	if(no == true){
	System.out.println(boleto);
	System.out.println("El boleto a comprar esta bien redactado? 1) Si 2) No");
	int talvez = scaner.nextInt();
	if(talvez == 1){
		compra.setlista(boleto);
		control =1;
	}
	else if(talvez != 1){
		control = 0;
		Menu3.getlista_vuelo().get((ingreso-1)).setcant_aspri(primera );
		Menu3.getlista_vuelo().get((ingreso-1)).setcant_eje(eje);
		Menu3.getlista_vuelo().get((ingreso -1)).setcantidad_tur(tur );
		
	}}}while(control ==0);
}



}